package IHM;


import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import javax.swing.JScrollBar;



public class TestIHM extends JFrame implements ActionListener,DimensionIHM {

	private JPanel CadreGauche;	
	private JPanel CadreDroit;
	private JPanel CadreCentre;
	//public JScrollBar cadreCentre;
	private JScrollPane scroll;
	public JRadioButton BoutonMachine[],TestCPU,TestMemory,TestHardDisk;
	private JTextField CPU,MEM,DisqueDur,OS,Connecte;
	private JButton valider;
	
	public CadreCentre cadrecentre;
	
	public CadreGauche cadregauche;
	
	public CadreBas cadrebas;
	
	public TestIHM(int NbMachine)
	{
	
		super("Monitoring");
		
		String Liste_machine []={"ok","test","machine2","machine 3","machineee","mmaaa","err"};
		
		/* Placement des cadres  */
		BorderLayout disposition = new BorderLayout();
		
		
		this.setLayout(disposition);
		
		this.setPreferredSize(new Dimension(LARGEUR_FENETRE,HAUTEUR_FENETRE));
		
		cadrecentre = new CadreCentre(Liste_machine);

		cadregauche = new CadreGauche();
		
		cadrebas = new CadreBas();
		//construire(cadrecentre,cadrecentre.machines);
		
		scroll = new JScrollPane(cadrecentre);
		
		
		
		cadrecentre.setScrollBar(scroll,cadrecentre);
		
		cadrecentre.construire(cadrecentre,cadrecentre.machines);
		
		//cadrecentre.repaint();
		
		//fenetre.setContentPane(cadrecentre);
		
		
		/* Creation des differents cadres */
	//	getCadreCentre(NbMachine);
		
		
		
		//getCadreCentreTemp(NbMachine);
		
		//getCadreGauche();
		
		
		
	//	getCadreGaucheTemp();
		
	//	getCadreDroit();
		
		
		this.add("Center",scroll);
		
		//this.add("West",CadreGauche);
		
		this.add("West",cadregauche);
		this.add("South",cadrebas);
		
		
		/* Affichage de la fenetre */
		this.pack();
		this.setVisible(true);
		
	}
	
	
	
	public void getCadreGaucheTemp() {
	
		CadreGauche = new JPanel();
		
		CPU = new JTextField("CPU");
		
		MEM = new JTextField("Memory");
		
		OS = new JTextField("OS");
		
		DisqueDur = new JTextField("HardDisk");
		
		Connecte = new JTextField("Connecte");
		/*
		GridLayout disposition = new GridLayout(5,1);
		*/
		
		CadreGauche.setLayout(null);
		
		
		
		CadreGauche.setPreferredSize(new Dimension(LARGEUR_CADRE_GAUCHE,HAUTEUR_CADRE_GAUCHE));
		
		
		CPU.setBounds(ABSCISSE_TEXTE_CADRE_GAUCHE,ORDONNEE_TEXTE_CADRE_GAUCHE,LARGEUR_TEXTE_CADRE_GAUCHE,HAUTEUR_TEXTE_CADRE_GAUCHE);
		
		
		MEM.setBounds(ABSCISSE_TEXTE_CADRE_GAUCHE,ORDONNEE_TEXTE_CADRE_GAUCHE+GAP_CADRE_GAUCHE,LARGEUR_TEXTE_CADRE_GAUCHE,HAUTEUR_TEXTE_CADRE_GAUCHE);
		
		OS.setBounds(ABSCISSE_TEXTE_CADRE_GAUCHE,ORDONNEE_TEXTE_CADRE_GAUCHE+2*GAP_CADRE_GAUCHE,LARGEUR_TEXTE_CADRE_GAUCHE,HAUTEUR_TEXTE_CADRE_GAUCHE);
		
		DisqueDur.setBounds(ABSCISSE_TEXTE_CADRE_GAUCHE,ORDONNEE_TEXTE_CADRE_GAUCHE+3*GAP_CADRE_GAUCHE,LARGEUR_TEXTE_CADRE_GAUCHE,HAUTEUR_TEXTE_CADRE_GAUCHE);
		
		
		Connecte.setBounds(ABSCISSE_TEXTE_CADRE_GAUCHE,ORDONNEE_TEXTE_CADRE_GAUCHE+4*GAP_CADRE_GAUCHE,LARGEUR_TEXTE_CADRE_GAUCHE,HAUTEUR_TEXTE_CADRE_GAUCHE);
		
		
		
		CadreGauche.add(CPU);
		
		CadreGauche.add(MEM);
		
		CadreGauche.add(DisqueDur);
		
		CadreGauche.add(OS);
		
		CadreGauche.add(Connecte);
		
		
		
		
	}
	
	
	
	
	public void getCadreGauche() {
		
		CadreGauche = new JPanel();
		
		CPU = new JTextField("CPU");
				
		MEM = new JTextField("Memory");
		
		OS = new JTextField("OS");
		
		DisqueDur = new JTextField("HardDisk");
		
		Connecte = new JTextField("Connecte");
		
		
	/*	CPU.setHorizontalAlignment(SwingConstants.CENTER);
		
		OS.setHorizontalAlignment(SwingConstants.CENTER);
		
		MEM.setHorizontalAlignment(SwingConstants.CENTER);
		
		DisqueDur.setHorizontalAlignment(SwingConstants.CENTER);
		
		Connecte.setHorizontalAlignment(SwingConstants.CENTER);*/
				
		
		GridBagLayout disposition = new GridBagLayout();
		
		CadreGauche.setLayout(disposition);
		
		CadreGauche.setPreferredSize(new Dimension(LARGEUR_CADRE_GAUCHE,HAUTEUR_CADRE_GAUCHE));
		
		GridBagConstraints contrCPU = new GridBagConstraints();

		GridBagConstraints contrMEM = new GridBagConstraints();
		
		GridBagConstraints contrOS= new GridBagConstraints();
		
		GridBagConstraints contrDisqueDur = new GridBagConstraints();
		
		GridBagConstraints contrConnecte = new GridBagConstraints();
		
		
// Contrintes imposees a la zone de texte CPU
		contrCPU.gridx = 10;

		contrCPU.gridy = 0;              
		
		contrCPU.gridwidth =10;
		
		contrCPU.weighty = 0.7;
		
		//contrCPU.anchor = GridBagConstraints.NORTH;  
		
		//CPU.setBounds(30,30,30,30);
		
		disposition.setConstraints(CPU, contrCPU);
		
		contrMEM.gridx = 10 ;
		
		//contrMEM.gridy = 20+ GAP_CADRE_GAUCHE;	
		contrMEM.gridy = 2;
		
		contrMEM.weighty = 0.7;
		
		disposition.setConstraints(MEM, contrMEM);
				
		contrDisqueDur.gridx = 10 ;
		
		contrDisqueDur.gridy = 50+ 2*GAP_CADRE_GAUCHE;	
		
		contrDisqueDur.weighty = 0.7;
		
		disposition.setConstraints(DisqueDur,contrDisqueDur);
		
		contrOS.gridx = 10 ;
		
		contrOS.gridy = 20+ 3*GAP_CADRE_GAUCHE;	
		
		contrOS.weighty = 0.7;
		
		disposition.setConstraints(OS,contrOS);	
		
		
		contrConnecte.gridx = 10 ;
		
		contrConnecte.gridy = 20+ 6*GAP_CADRE_GAUCHE;	
		
		contrConnecte.weighty = 0.7;
		
		disposition.setConstraints(Connecte,contrConnecte);	
		
		
		CadreGauche.add(CPU);
		
		CadreGauche.add(MEM);
		
		CadreGauche.add(DisqueDur);
		
		CadreGauche.add(OS);
		
		CadreGauche.add(Connecte);
	}
	
	
	public void getCadreGaucheTemp2() {
		
		
		CadreGauche = new JPanel();
		
		CPU = new JTextField("CPU");
				
		MEM = new JTextField("Memory");
		
		OS = new JTextField("OS");
		
		DisqueDur = new JTextField("HardDisk");
		
		Connecte = new JTextField("Connecte");
		
		GridLayout disposition = new GridLayout(6,1);
		
		
		CadreGauche.setLayout(disposition);
		
		CadreGauche.setPreferredSize(new Dimension(LARGEUR_CADRE_GAUCHE,HAUTEUR_CADRE_GAUCHE));
		
		disposition.setVgap(30);
		
		disposition.setHgap(80);
		
		
		CadreGauche.add(CPU);
		
		CadreGauche.add(MEM);
		
		CadreGauche.add(DisqueDur);
		
		CadreGauche.add(OS);
		
		CadreGauche.add(Connecte);
	
		
		
		
	}
	
	
	
	public void getCadreDroit() {
	
		TestCPU = new JRadioButton("TestCPU");
		
		TestMemory = new JRadioButton("TestMemory");
		
		TestHardDisk = new JRadioButton("TestHardDisk");
		
		valider = new JButton("Valider");
		
		CadreDroit = new JPanel();
		
		
		//GridLayout disposition = new GridLayout(4,1);
		
		FlowLayout disposition = new FlowLayout();
		
		CadreDroit.setLayout(disposition);
		
		CadreDroit.setPreferredSize(new Dimension(LARGEUR_CADRE_DROIT,HAUTEUR_CADRE_DROIT));		
		
		TestCPU.setHorizontalAlignment(SwingConstants.CENTER);
		
		TestHardDisk.setHorizontalAlignment(SwingConstants.CENTER);
		
		CadreDroit.add(TestCPU);
		
		//CadreDroit.
		
		CadreDroit.add(TestMemory);
		
		CadreDroit.add(TestHardDisk);
		
		CadreDroit.add(valider);		
		
	}
	
	
	
	public void getCadreCentre(int NbMachine) {
		
		
		
		
		CadreCentre = new JPanel();
		
		
		scroll = new JScrollPane(CadreCentre);

		BoutonMachine = new JRadioButton [NbMachine] ;
		
		for(int i=0;i<NbMachine;i++) {
			BoutonMachine[i] = new JRadioButton("Machine "+i);
		}
		
		
		
		scroll.setPreferredSize(new Dimension(LARGEUR_CADRE_CENTRAL,HAUTEUR_CADRE_CENTRAL));
		
		
		scroll.add(CadreCentre);
		
		scroll.setViewportView(CadreCentre);
		
		
		
		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		
		
		
		//CadreCentre.setBackground(Color.WHITE);
				
		/*GridLayout disposition1 = new GridLayout(1,10);
		
		CadreCentre.setLayout(disposition1);
		
		CadreCentre.setSize(1000,50);
		*/
		//CadreCentre.add(scroll);
		
		for(int i=0;i<NbMachine;i++) {
			
			CadreCentre.add(this.BoutonMachine[i]);
			
		}
		
		
		
		
		if (BoutonMachine[0].isEnabled()==true) {
			
			System.out.println("ok");
		}
		
		
	}
	
	
	public void getCadreCentreTemp(int NbMachine) {
		
		CadreCentre = new JPanel();
		
		
		scroll = new JScrollPane(CadreCentre);

		BoutonMachine = new JRadioButton [NbMachine] ;
		
		for(int i=0;i<NbMachine;i++) {
			BoutonMachine[i] = new JRadioButton("Machine "+i);
		}
		
		
		scroll.setPreferredSize(new Dimension(LARGEUR_CADRE_CENTRAL,HAUTEUR_CADRE_CENTRAL));
		
		
		scroll.add(CadreCentre);
		
		scroll.setViewportView(CadreCentre);
		
				
		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		
		
		
		CadreCentre.setBackground(Color.WHITE);
				
		GridLayout disposition1 = new GridLayout(5,NbMachine);
		
		CadreCentre.setLayout(disposition1);
		
		CadreCentre.setSize(1000,50);
		
		//CadreCentre.add(scroll);
		
		
		
		for(int i=0;i<NbMachine;i++) {
			
			CadreCentre.add(this.BoutonMachine[i]);
			
		}
		
		
	}
	
	
	
	public void actionPerformed(ActionEvent evt){
	
		
		
	}
	
	public static void main(String args[]){  
  	  
  	  TestIHM max=new TestIHM(3);
  	  
  		  
 
  	}
  	  
}
	
